package com.example.bms.mapper;
import com.example.bms.entity.Admin;
import com.example.bms.entity.Student;
import com.example.bms.entity.Teacher;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;


/**
 * @apiNote 验证超级管理员，教师，学生的账号密码是否正确
 * @author 钟顺浩
 * @email 2918185121@qq.com
 * @since 1.0.0
 */
@Mapper
public interface LoginMapper {


    /**
     * @apiNote 验证账号密码是否正确
     * @author 钟顺浩
     * @param username 账号
     * @param password 密码
     * - adminId 超级管理员Id
     * - adminName 超级管理员姓名
     * - sex 男
     * - tel 电话号码
     * - email 邮件
     * - cardId 试卷编号
     * - role 角色权限（0）
     * @email 2918185121@qq.com
     * @return Admin
     * @since 1.0.0
     */
    @Select("select adminId,adminName,sex,tel,email,cardId,role from admin where adminId = #{username} and pwd = #{password}")
    public Admin adminLogin(Integer username, String password);


    /**
     * @apiNote 验证账号密码是否正确
     * @author 钟顺浩
     * @param username 账号
     * @param password 密码
     * - teacherId 教师Id
     * - teacherName 教师姓名
     * - institute 学院名称
     * - sex 性别
     * - tel 电话号码
     * - email 邮件
     * - cardId 试卷编号
     * - type 职称（讲师，教授）
     * - role 角色权限（1）
     * @email 2918185121@qq.com
     * @return Teacher
     * @since 1.0.0
     */
    @Select("select teacherId,teacherName,institute,sex,tel,email,cardId," +
            "type,role from teacher where teacherId = #{username} and pwd = #{password}")
    public Teacher teacherLogin(Integer username, String password);


    /**
     * @apiNote 验证账号密码是否正确
     * @author 钟顺浩
     * @param username 账号
     * @param password 密码
     * - studentId 学生Id
     * - studentName 学生姓名
     * - grade 年级
     * - major 专业
     * - clazz 班级
     * - institute 学院
     * - tel 电话号码
     * - email 邮件
     * - cardId 试卷编号
     * - sex 男
     * - role 角色权限（2）
     * @email 2918185121@qq.com
     * @return Student
     * @since 1.0.0
     */
    @Select("select studentId,studentName,grade,major,clazz,institute,tel," +
            "email,cardId,sex,role from student where studentId = #{username} and pwd = #{password}")
    public Student studentLogin(Integer username, String password);
}
